package cn.xzqwjw.taskmanager.service;


import cn.xzqwjw.taskmanager.domain.pojo.SysPurview;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @author rush
 */
public interface SysPurviewService extends IService<SysPurview> {

  /**
   * 添加权限，同时添加此权限对应的前端路由
   *
   * @param paramsJson 包含权限和此权限对应的前端路由
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String add(String paramsJson);

  /**
   * 批量添加权限，同时添加此权限对应的前端路由
   *
   * @param list 多个权限List
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String addBatch(List<SysPurview> list);

  /**
   * 根据id删除权限，此权限对应的前端路由根据数据库设计自动删除关系
   *
   * @param id 权限id
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String delById(Integer id);

  /**
   * 修改权限，但没有修改此权限对应的前端路由
   *
   * @param purview 要修改的权限对象
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String modifyAll(SysPurview purview);

  /**
   * 根据id得到一条记录
   *
   * @param id 要查询的id
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String queryById(Integer id);

  /**
   * 根据id得到一条记录
   *
   * @param id 要查询的id
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  SysPurview getDetailById(Integer id);

  /**
   * 添加/编辑权限时要先看看权限中文名是否已经用过
   *
   * @param label 权限中文名
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String checkLabel(String label);

  /**
   * 添加/编辑权限时要先看看权限英文代码是否已经用过
   *
   * @param code 权限英文名
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String checkCode(String code);

  /**
   * 查全部列表
   *
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String listAll();

  /**
   * 添加角色时，要得到所有权限列表并按 tag 分类，以便设置全选功能
   *
   * @return 所有 tag 等于输入参数的权限列表
   */
  String listAllByTag();

}
